// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import ListClass from '@api/map/model/QueryAreaMapDeviceListReq'
import InfoClass from '@api/map/model/AreaMapDto'
import BaseClass from '@api/map/model/AreaMapDeviceDto'
import API from './API'

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API,

  /**
   * 映射
   */
  MAP: {
    WORD: '标记', // 单词

    tipInfo: '查询绑定地图', // 信息提示
    tipSelect: '查询周界列表', // 下拉框提示

    hoverId: '', // 悬浮点位的关联 ID
    hoverType: '', // 悬浮点位的关联类型
  },

  /**
   * 初始信息参数
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setInfoParam() 重置时使用
   */
  INIT_INFO_PARAM: {
    areaId: '',
  },

  /**
   * 初始信息
   *
   * 1. 初始存在，才能响应
   * 2. setInfo() 合并时使用
   */
  INIT_INFO: CORE.initObj(InfoClass, {
    mapParent: 2, // 默认不继承
    mapType: 2, // 默认为二维地图
    mapRate: '1:100', // 默认比例尺
    rateBefore: 1, // 比例分子
    rateAfter: 100, // 比例分母
    fileType: 1, // 文件类型
  }),

  /**
   * 初始参数
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setParam() 重置时使用
   * 4. WebSearch 高级查询点重置时使用
   */
  INIT_PARAM: CORE.initObj(ListClass, {
    pageSize: CORE.MAP.PAGE_SIZE_SELECT,
    checkboxList: [], // 复选列表
  }),

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setOne() 重置时使用
   * 4. openAdd() 新增时使用
   */
  INIT_ONE: CORE.initObj(BaseClass, {
    siteJson: '{}', // 周界线字符串
    site: {}, // 周界线对象
    step: 1, // 周界线打点的步数
    left: null, // 居左的百分比数值 (浮点数，无后缀 %)
    top: null, // 居上的百分比数值 (浮点数，无后缀 %)
  }),

  /**
   * 下拉框参数
   */
  selectParam: CORE.initObj(ListClass, {
    //
  }),
}
